home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 10
/
The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso
/
PC_SIGCD
/
20
/
9
/
DISK2096.ZIP
/
FONTED.ARC
/
FONTED.DOC
< prev
next >
Wrap
Text File
|
1990-02-16
|
38KB
|
836 lines
FONTED ((c) B.Meißner, 1989)
════════════════════════════════
Author:
Burkhard Meißner
Friedheim 86
2390 Flensburg
Federal Republic of Germany
tel.: 0049-461-30315
Notice:
───────
FONTED is a very flexible program that you can forge to you special needs; be
sure to read the remainder of this file to become acquainted with the
program's features.
You should print this file in order to have its information at hand, when
working with FONTED.
Contents of this file:
──────────────────────
1) The Shareware concept
2) About the author
3) Disclaimer
4) Purpose
5) Hardware requirements
6) Starting the program
7) Parameter file
8) How to get help
9) Editing a font
10) Example screen display
11) Alternate pixels
12) Insert/Delete
13) Move character within box
14) Fold, turn or miniaturize character
15) Change width of character box (matrix)
16) Read area into paste buffer
17) Paste contents of paste buffer to location in character display
18) Invert character
19) Discard all changes and restore original character
20) Changing right or left widths
21) Switching to a new character
22) Using the alphabet display
23) Changing the font type
24) Saving your font
25) Using your font
26) Editing fonts without initialization string
27) Editing draft quality fonts
28) Merging two fonts
29) General advice
30) Technical information
31) Example fonts and program files
1) The Shareware concept:
──────────────────────
All FONTED files, the FONTED.EXE program module and all accompanying software
and font files are copyright Burkhard Meißner.
Permission, however, is granted to everybody to copy and share these files and
to pass copies of the program and all accompanying files, provided that:
- no fee is charged on such copying and distribution, except for a nominal
charge, covering the real costs of copying and distributing the software. All
copying and distribution for commercial purposes is explicitly excluded.
- all files are distributed together and in unaltered form; patched, truncated
or enlarged files of the FONTED package must not be copied and distributed to
any third party
- the distributed files are not embodied in a new environment of software
alien to the FONTED system, be it of commercial or non-commercial character
We think it is fair to ask for a small registration fee that you should send
us, if you use FONTED for your own purposes. Especially, if you are
distributing font files around that you have produced or edited using FONTED,
you should send us such a contribution. We think, $ 15 (25 DM in Germany) is
appropriate. Such contribution will be gratefully received. If for any
reason the program proves exceptionally useful to you, you are encouraged to
send more, if you can afford it. If you want to give us your comments, bug
reports or suggestions for improvements, we will certainly appreciate your
efforts gratefully. Please send all communications and contribution to
Burkhard Meissner
Friedheim 86
D-2390 Flensburg
tel.:
0049-461-30315 (from overseas)
0461-30315 (from within Germany)
About the author:
2) ─────────────────
I am a classicist, working in the field of Ancient History. This year, I have
submitted a doctoral thesis to the university of Heidelberg. Besides, I am
working at the history department of the Technische Hochschule Darmstadt.
Over the last years, I have acquired some programming experience in SNOBOL4,
MacroSPITBOL, assembly language and the C programming language. Most of my
programming is done in connection with my work and is therefore strictly
nonnumeric in character. For such purposes, the SPITBOL and SNOBOL4
programming languages are especially well suited. If, by chance, you have
something of this kind to be done, get into contact with me; perhaps I can
help you with your programming needs.
3) Disclaimer:
───────────
The author does not warrant that the functions contained in the program will
meet any users requirements or that the operation of the program will be
uninterrupted or error-free. In no event will the author or the distributor
be liable to the user for any damages, including lost profits, lost savings or
other incidental or consequential damages arising out of the use or inability
to use the program, even if the author has been advised of the possibility of
such damages, or for any claim by any other party. The program is provided
"as is", without warranty of any kind, either expressed or implied. The
entire risk as to the quality and performance of the program is with the user.
Should the program prove defective, the user assumes the entire cost of all
necessary servicing, repair or correction. Liability is limited to replacing
the software or refunding the purchasing price.
4) Purpose:
────────
The Program reads, edits and writes binary download fonts for NEC P6/EPSON LQ
class printers in letter quality or draft mode.
The program is extraordinarily flexible and can be configured by the user to
his particular needs.
Besides the more usual editing activities it supports cutting and pasting,
inversion of pixels, folding and size reduction along two axes and character
moving.
The program allows for the automatic creation of a widths table file
containing all necessary information about your font to allow it to be used by
several word processors. FONTED fonts are suitable for use in connection with
most professional word processors.
5) Hardware requirements:
──────────────────────
The program uses the default monochrome display. No graphics capabilities are
required. You may have to adjust the brightness and contrast settings of you
CRT in order to be able to distinguish between two variant cursor forms in the
character display (see below). Memory requirements: 220 KByte free memory.
Some non-critical BIOS calls are made for the screen and the keyboard. If you
have a very non-standard BIOS, this may cause the program to not work on your
machine. On startup, allow some time for initialization. To make use of the
fonts produced, you should have a 24 pin printhead printer that complies with
the EPSON LQ/NECP 5 6 7 standard and allows for the downloading of external
font files.
6) Starting the program:
─────────────────────
Type
FONTED
on the DOS prompt.
If you want to modify an existing font, add the filename of the font:
FONTED font.bin
Before editing an existing font, you should make sure that you have made
backup copies of your font. There is always the possibility of some hardware
or software malfunction. For the same reason ensure that you have taken a
backup of the program file itself.
Allow some time for the program to initialize.
7) Parameter file:
───────────────
The program reads a configuration file FONTED.CNF that must reside in the
current working directory. It contains information about fonts and parameter
settings to the program. Basically, its lines have the following format (in
sequence):
FONT_DESIGNATOR_SYMBOL (2 letters)
=
INITIALIZATION_STRING (numbers represent ASCII byte values)
=
MAXIMUM_LETTER_MATRIX (must be given)
=
FIXED_TOTAL_CHARACTER_WIDTH (optional, default: proportional spacing)
Such a line might read (* marks comments):
*
* Definition for ELite printing:
* Maximum matrix width allowed = 26
* Fixed character width = 30
*
EL=27 120 1 27 77=26=30
Nomenclature:
FONT_DESIGNATOR_SYMBOL: A symbolic name, given to a specific font by the
user. The font type is referred to by this symbolic name within the program.
INITIALIZATION_STRING: This is a sequence of bytes at the beginning of your
font file. Any sequence of bytes may occur; for instance you might choose a
sequence that initializes the printer completely and sets it to a specific
pitch/quality combination. These bytes must have meaning to your printer.
Strictly speaking, these bytes are nothing more than a "header" to your font
file, because the commands for loading your font into the printer's memory are
written to the file by FONTED automatically. Nevertheless, these header bytes
are used by FONTED to distinguish between different font types.
MAXIMUM_LETTER_MATRIX: Maximum width of the character proper (ranges from 1
to 43).
FIXED_TOTAL_CHARACTER_WIDTH: In a fixed spacing font, the sum of three values
sent to the printer must be constant: (a) the space to the left of the
character, (b) the space occupied by the character itself and (c) the space to
the right of the character. If given, the program adjusts these values
automatically. If a given maximum character matrix width exceeds the
character's total widths, the program aborts width an error message.
This information is used by the program on reading and writing your font.
Thus, all necessary "header" information about your font must be given. If,
for instance, your font initializes the printer before downloading, modify the
string accordingly:
EL=27 64 27 120 1 27 77=26=30
You can enter a variety of such font definitions. If you do not want your
font to initialize the printer automatically, or if you want the program to
recognize an existing font of this kind, you should not insert any numbers
between the first = and the second = signs. The first two letters are used by
the program to identify your font. Later you will use these letters to
communicate with the program about font type changes etc. If you want to have
your font as a proportional font, leave out the last fixed widths
specification (and the preceeding = sign), if you like. Take care not to feed
irregular values to the program; this may cause it to abort with an error.
Note: You can specify character matrix widths up to 43. NEC P 5 6 7 printers
cannot have characters built of more than 37 columns!
In addition, you can alter the default character range. The default settings
are:
* Set first letter to 32 (space) and last letter to 127
* (BACKSPACE-DELETE)
FL=32 LL=127
You are, however, not encouraged to select a very wide character range,
because the program's capacity is limited. This can result in the program
memory's overflowing and in an abnormal ending of FONTED. FONTED works best
with the settings in this package's FONTED.CNF file.
Normally, matrix printers do not allow for pixels to be printed in adjacent
columns. This may cause damage to your printer's print head, and we have
designed the program to check for occurrences of double pixels effectively.
To override these checks, enter
DOUBLE=Y
in the configuration file. You are strongly discouraged from doing so,
because this may cause harm to your print head.
Instead of inserting this line in the configuration file, you can call FONTED
with the /N parameter. When editing printer fonts, you should never do this,
however.
Enclosed with this program you will find a fully annotated configuration file
FONTED.CNF (with embedded comments) that you should consult before altering
the configuration or writing a new FONTED.CNF file.
8) How to get help:
────────────────
Once you are in the character display, you can always invoke a simple HELP
facility. On pressing ALT-H, you can have the program display to you the
contents of a file FONTED.HLP. If this file is not present in the current
directory, you get an error message instead. The help file displays an
overview over the FONTED keys and some additional information. After any of
its screens you can either return to editing or continue getting help. The
help file itself is a simple ASCII text file, that means, you can edit it and
change it to your needs.
In fact, FONTED displays every possible contents of the file FONTED.HLP. Once
you have become more familiar with the program, you can think of using
FONTED.HLP to get your current directory. A sensible strategy to pursue would
be to rename your FONTED.HLP file to some other name, say FONTHELP.TXT. You
would then start your font editor from a batch file along the following lines:
ECHO OFF
CLS
DIR /w > DIR.TXT
COPY FONTHELP.TXT + DIR.TXT FONTED.HLP
FONTED %1
Suppose, you have named this batch file FE.BAT. Editing an existing font
would then require you to enter FE font.fil. On pressing ALT-H from within
the font editor you would see your current directory AFTER the font editor
information. To get it right at the beginning of the font editor replace the
fourth batch file line by
COPY DIR.TXT + FONTHELP.TXT FONTED.HLP
The initial help screen you get on pressing ALT-H gives an overview over all
FONTED command keys:
╔════════════════════════════════╤═══════════════════════════════════════════╗
║ [CHAR] go to CHARacter │ [Home],[End] Beginning, end of row ║
║ [Alt-A] Go to ALPHABET display │ [PgUp/Dn] Top/bottom of column ║
║ [Alt-B] Previous character │ [Ctrl-Left] Move character 1 col. left ║
║ [Alt-C] anti-Clockwise turn │ [Ctrl-Right] Move character 1 col. right ║
║ [Alt-D] Duplicate to buffer │ [Ctrl-PgUp] Move character 1 row up ║
║ [Alt-H] type Help text │ [Ctrl-PgDn] Move character 1 row down ║
║ [Alt-I] Invert pixels in char. │ [+] Insert row into character ║
║ [Alt-L] change Left width │ [-] Delete row from character ║
║ [Alt-M] Mark for paste buffer │ [Esc] Restore character ║
║ [Alt-N] Next character │ [Ins] Insert column into character ║
║ [Alt-P] Paste buffer contents │ [Del] a) in character display: ║
║ [Alt-R] change Right width │ Delete column ║
║ [Alt-S] delete every 2nd col. │ b) in ALPHABET display: ║
║ [Alt-T] change font Type │ Delete (undefine) char. ║
║ [Alt-X] eXtract every 2nd row │ <RETURN> a) in character display: ║
║ [Alt-1] Fold char. vertically │ alternate pixel at cursor ║
║ [Alt-2] Fold char. horizont. │ position ║
║ [F1] Decrease matrix width │ b) in ALPHABET display: ║
║ [F2] Increase matrix width │ go to character ║
║ [F6] Increase matrix width │ Ctrl-<RETURN> EXIT/SAVE ║
╚════════════════════════════════╧═══════════════════════════════════════════╝
9) Editing a font:
───────────────
The program proper displays a screen, divided into three parts:
Left side: The character display Right upper corner: The parameter display
Right lower corner: The alphabet display
The character display always shows the actual character being edited, the
parameter display shows the font type (2 letter symbol), the character, its
ASCII value and three widths informations: the space left of the matrix, the
matrix width itself (center) and additional space right of the matrix proper.
The actual cursor position is shown and updated continuously. The character
matrix frame contains two markers for the base line of normally-sized
characters (19). The alphabet display shows the full ASCII character set,
with an arrow indicating the actual character and small circles for all those
characters that have been defined and are contained in the actual character
set.
The character box in the character display is made of two elements, dots ·
signifying a non-printing position and boxes █ signifying a printing pixel.
The overall dimensions of the character box represent the printing letter
shape exactly, the pixels, however, are of different shape (squared instead of
circular). Nevertheless, the character display should give you a rather clear
idea of how the printing letter will look like. Around the character box
there is a frame which indicates the actual box size limits. These can be
altered (see below). Two markers indicate the default base line (19).
10) Example screen display:
───────────────────────
│▒····································│ Curs: 01:01 Char: w (119)
│·····································│ Help: Alt-H
│·····································│ Type: PR Left: 4
│·····································│ Center: 37
│·····································│ Right: 4
│·····································│
│······█·······················█······│
│···█·█·························█·█···│
│··█·█·············█·············█·█··│ <---NON-PRINTING--CHARACTERS--->
│·█·█·············█·█·············█·█·│
│·█·█·············█·█·············█·█·│ !"#$%&'()*+,-./0123456789:;<=>?
│█·█··············█·█··············█·█│ °°°°°°°°°°
│█·█··············█·█··············█·█│ @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
│█·█···············█···············█·█│ ° °° °°° °°° °°° °°
│·█·█··············█··············█·█·│ `abcdefghijklmnopqrstuvwxyz{|}~
│·█·█·············█·█·············█·█·│ °° ° °°°°°°°°°°°°°°°°° °°°
│··█·█···········█···█···········█·█··│ ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒ
│···█·█·······█·█·····█·█·······█·█···│
╞······█·█·█·█···········█·█·█·█······╡ áíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐
│·····································│
│·····································│ └┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀
│·····································│
│·····································│ αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■
│·····································│
└─────────────────────────────────────┘
(Notice: <---NON-PRINTING--CHARACTERS---> are not shown as they appear
on the screen)
Editing a character in the character display:
Cursor movement: CURS_UP
CURS_DN
CURS_RT
CURS_LF
HOME To left margin
END To right margin
PG_UP To upper margin
PG_DN To lower margin
11) Alternate pixels:
─────────────────
RETURN Switches between pixel set and
pixel not set. If you are
creating double pixels, the
program detects this and issues
a warning beep. The change
affected is not executed. You
can override this check: Start
the program with the /n or /N
parameter (e.d.: FONTED file.in
/n) [or use DOUBLE=Y].
There are two different cursor
forms, one for the cursor on a
pixel set, one for the cursor on
a non-printing pixel position.
On a pixel set, the cursor looks
like ▓, otherwise it shows up as
▒. If, on reading these lines on
your CRT, you cannot distinguish
between these two characters,
you should probably re-adjust
your brightness and display
contrast settings.
12) Insert/Delete:
──────────────
INS Insert Column at cursor position
DEL Delete Column at cursor position
+ Insert row at cursor position
- Delete row at cursor position
13) Move character within box:
──────────────────────────
CTRL-CURS_RT Move character 1 column right
CTRL-CURS_LF Move character 1 column left
CTRL-PG_UP Move character 1 row up
CTRL-PG_DN Move character 1 row down
14) Fold, turn or miniaturize character:
────────────────────────────────────
ALT-1 Fold along y axis
ALT-2 Fold along x axis
ALT-C Anti-Clockwise turn 90°
ALT-S Delete every 2nd column
ALT-X Delete every 2nd row
(Note: The latter two are
especially useful, if you are
preparing a screen font for
conversion by FONTCONV; don't
forget to use the /n parameter
or DOUBLE=Y in this case.
The result will be all but
perfect, and you will have to
clean up the character).
Moving your character to the right,
left, up or down before applying
the latter two procedures may
yield better results. Try it out
before saving the font (use ESC
to restore the character to its pre-
vious state).
15) Change width of character box (matrix):
───────────────────────────────────────
F1 Make box smaller
F2 or F6 Make box larger up to the limit
set
These operations affect the size of the character matrix; if it has already
maximum size, you cannot increase it.
16) Read area into paste buffer:
────────────────────────────
1) Mark one corner of the area with
ALT-M. There will be a marker
at the cursor position where you
hit ALT-M that looks like ≡.
2) Move the cursor to the opposite
corner
3) Press ALT-D to duplicate every-
thing between the marker and the
present cursor position into the
paste buffer.
If you have invoked marking by accident, just hit ALT-D. The present pixel is
then read into the paste buffer and its prior content dis- carded, but you can
continue editing. If you want to re-locate the past-marker after pressing
ALT-M just move the cursor to where you want to have it; the marker is moved
and the paste buffer is re-initialized. The paste buffer is preserved over
character or type changes. You may thus freely copy parts of any character
into any other character matrix, provided they fit in the character box (see
below). The contents of the paste buffer can be pasted more than once without
reading it in each time anew.
17) Paste contents of paste buffer to location in character display:
────────────────────────────────────────────────────────────────
Move the cursor to the upper left corner of the area and press ALT-P. If the
contents of the paste buffer do not fit into the area, because the rows are
not long enough, the remainder is discarded. If the contents of the paste
buffer contain more rows than can be fitted into the area, remaining rows are
discarded, too. If by chance your pasting of the buffer contents into the
character matrix generates a double pixel, the program issues a warning
message. No harm occurs, but you are encouraged to remove this double pixel
pattern, before you try to compile your character shape into the printer's
internal form.
18) Invert character:
─────────────────
You can invert the pixels in the character currently edited (ALT-I). As with
pasting, you get a warning message, if this process creates double pixels in
one and the same row in the character matrix.
19) Discard all changes and restore original character:
───────────────────────────────────────────────────
Press ESC. ESC restores the character to the shape it had before you started
editing it, except for type changes.
20) Changing right or left widths:
──────────────────────────────
If you are editing a fixed-spacing font, the spaces to the right and left of
your character are automatically calculated by the program and adapted to your
present character box size (width). If, however, the font you are editing is
a proportional font (no fixed character size), you can alter these values
manually. Press ALT-L for the left margin space and ALT-R for that to the
right. In both cases you are asked to enter the new values directly into the
parameter display. The values are checked and accepted only if they are
correct. Otherwise, the old values are restored. This is the only accasion
where you will interfere with the parameter display, execept for type change
(see below).
21) Switching to a new character:
─────────────────────────────
From the character display, you can switch to a new character by simply
pressing the character on the keyboard (e.d.: a ). The present character is
then compiled into its binary representation and the new character displayed,
if it exists. Otherwise a new empty character box is generated for this
character. If for some reason your character contains double pixels (as the
result of a paste operation, for instance), it cannot be compiled. The
program issues an error message, asking you to press any key. Afterwards you
are back in the character display to remove any double pixels that might be
present. Again you should press a to switch to the new character.
Alternatively, you could press ALT-N to go to the next or ALT-B to go to the
previous character. In any case, requesting a switch to a character outside
the present character range results in a warning beep and nothing else.
Depending upon the size of your current character, and depending upon the
speed of your computing machinery, switching to a different character may take
some time. You are asked to wait by FONTED while your character is compiled
into the program's internal representation and the new character matrix set
up.
22) Using the alphabet display:
───────────────────────────
Pressing ALT-A you get into the alphabet display. You can move around freely
with the cursor keys, while a normal DOS cursor is displayed. If you press
RETURN on any character, this character is chosen to be edited next. Pressing
DEL, you can undefine any character (delete it from the character set). Both
operations are not allowed on the present character. Any errors bring you
back to the character display with a warning beep. ESC brings you back
without this beep.
There are a few letters that you can choose for editing only via the ALPHABET
display. Mainly, these are characters, whose keys have meaning to the program
itself, for instance: - + ASCII_13 ASCII_10
23) Changing the font type:
───────────────────────
The program detects the type of the font automatically on reading it in, as
long as you have given it appropriate information. If what you are doing is
creating a new character set, the last font type definition in the .CNF file
is used as its type specification. In either case, you might want to change
this. Press ALT-T (for type) and enter the new two-letter type specification.
If it is a valid type identification name, the program compiles your present
font into the new one. To do so, it must first compile your present character
into the old format. If this cannot be done because of double pixels being
present, you get the usual error message and the operation is aborted. If it
can be done, the character set is converted with all widths informations
changed accordingly. If the character boxes of any of your characters are to
large to fit the new format (on changing from a 10 cpi or proportional font to
a 12 cpi font. for instance), they are truncated on the right side. Otherwise
they are left intact.
24) Saving your font:
─────────────────
Press CTRL-RETURN. You shall then be asked to specify an output file. Enter
the output file (or <RETURN>, if you do not want to save your font. The
program then requests you to specify a character widths table file. Enter the
name of this file or <RETURN>, if you do not need such a file. If you have
responded with an empty <RETURN> to the first question, the program does not
ask you to specify a widths table either and exits. Otherwise, the program
saves your font to the specified file, writes a character widths table (if
directed to do so) and exits afterwards. If the output file cannot be opened,
the program aborts the process and returns you to the editor. If, however,
the widths table file cannot be opened, no widths table is written and the
program proceeds as if no widths table file had been requested. From any
correctly written font file you can always get a widths table later.
25) Using your font:
────────────────
The binary file obtained (the output file) must be copied to your printer's
memory before it can be used. Do so with the DOS command
COPY FONT.BIN LPT1 /B
The character widths table gives you information that might be fed into your
favourite word processor (ChiWriter from Horstmann Software, P.O. Box 5039,
San Jose, CA 95150, California, USA is to be recommended for its flexibility
and ease of use). The format of the character widths table file produced by
FONTED is (in sequence):
letter (decimal ASCII representation)
space to left of character
character matrix width
space to right of character
total character width
units are in /360 inch for a letter quality font, /120 inch for a draft
quality font and /80 inch for draft high speed fonts (NEC P 5 6 7).
e.d.: B (66) 4 36 4 44
As in the output file, letters are sorted by ascending ASCII sequence.
To switch to you new font, you can employ either of two methods:
- Select the "user defined" (HOST) character set
from your printer's control panel.
- Send the following ASCII character sequence
directly to your printer (decimal values):
27 37 1
To deselect your character set, either re-set your printer from the control
panel, or send the following byte sequence to the printer: 27 37 0
If you have desingned a fixed spacing font that contains diacritical signs
(like our example font ELGREEK.BIN) and want to use these signs, preceed any
of the diacritical signs by a BS (ASCII 8). This lets the printhead overprint
the letter preceding the diacritical mark. You will have to make sure that
your word processing software does this automatically.
In the sub-directory FONTTEST you will find several files that are called by
FONTTEST.BAT. Switch on your printer and enter "FONTTESTTEST" from the DOS
level; your printer will print a sample from a Greek philosopher's great work
to show you how to make use of diacritics.
26) Editing fonts without initialization string:
────────────────────────────────────────────
In the parameter file, you can specify a font as having no initialization
string by simply letting the space between the first and the second = signs
free. Because the program recognizes the fonts by their initialization
strings, all such fonts (with no initialization) will be regarded as identical
on reading them. If a font with no initialization string is supplied to
FONTED, the program will use recognize such a font as the font in your
configuration definition that bears the symbolic name with the highest rank
acording to alphabetic ordering ("AA" is tried before "ZZ"). After having
read the font into the computer's memory, you can, however, convert it to any
of the other types. To make effective use of this, you should make sure that
the last font in your .CNF file that has an empty initialization string
specified, is a proportionally spaced font, like:
XX= =37
This leaves the widths informations intact. On writing your font after
converting it to the appropriate type and editing it in the usual manner, you
will find the font correctly writen by the program.
You should use this feature in exceptional cases only. Because the
initialization strings are used by FONTED to recognize the fonts, and because
an empty initialization string always matches, it may lead to a font being not
recognized correctly. To prevent you from incurring any harm from this, try
to figure out lexically "large" symbolic names for such fonts, like "ZZ" or
"XX": The program sorts the fonts alphabetically, before trying to match any
defined initialization string against the font being supplied. The first
match counts.
27) Editing draft quality fonts:
────────────────────────────
Instead of supplying initialization strings for letter quality fonts to the
program, you can make it edit draft fonts. These fonts must comply with the
restrictions imposed by your particular printer. For instance, on a NEC P 6
printer, the characters in a draft quality font must not consist of more than
9 columns. Editing such fonts is straightforward. You will, however, notice
that contrary to letter quality fonts, they do not come out with the right
proportions on the screen. Rather, they appear squeezed along the x-axis by a
factor of 3 and do not quite look like what they appear as on the printer.
Editing such a font requires more imagination on the part of the user than
editing a letter quality font. With a little practice, you can, however, use
the program to edit draft quality fonts successfully.
Editing draft quality fonts is slightly faster than editin letter quality
fonts.
28) Merging two fonts:
──────────────────
If you want to merge the characters of two fonts, you have three options. In
all cases the two fonts must be of the type:
1) Supply them both consecutively to the printer; in the printer's memory all
the characters will be accessible (unless you have a double-defined one, in
this case only the last of two versions will be usable).
2) Or you create a version of one of these fonts without an initialization
string. Copy this font to the tail (!) of the other font:
COPY FONT_A.BIN + FONT_B.BIN FONT.BIN /B (Do not omit the /b parameter!)
This will create a new font file that contains both fonts; make sure that
FONT_B.BIN was saved as a font without a string to set up the printer. In
this case, FONTED's memory behaves like the printer's: Of any two
double-defined characters only the last one will be accessible. Make sure,
FONT_B.BIN contains characters that come AFTER those in FONT_A.BIN according
to the standard ASCII collating sequence.
3) There is a variant of method 2): Change your active font to a font type
without a printer-setup string (that initializes your printer to a specific
font). Instead of saving it to a new file or overwriting an existing file,
you can append it to an existing file. On being asked for the output file
name, just precede the filename with two ">" signs, as in: >>FONT.FIL. The
active font is then appended to FONT.FIL rather than written over it. If
FONT.FIL does not exist, it is created. Notice: This method is by far the
best of all three; several times we have encountered difficulties with method
1)! Even with this method, you should append characters to FONT.FIL that
occur later in the alphabet (or ASCII sequence).
Generally, merging two fonts is a much safer strategy than attempting at
handling an excessively large font. FONTED will simply abort with an error,
if forced to work beyond its capacities.
29) General advice:
───────────────
We have supplied a number of fonts with this package that you should use as
examples to work upon, before trying to create a new font from scratch.
Improving upon an existing font will always be a much better strategy than
creating a new font from scratch. Try to make as much use as possible of the
duplicate-and-paste buffer. This not only saves you much time but helps to
give your characters a more uniform look.
30) Technical information:
──────────────────────
The program was written in PC-SPITBOL, an implementation of the MacroSPITBOL
language for MS-DOS machines. SPITBOL is an improved fast implementation of
the SNOBOL4 language, which is especially suited to non-numerical programming
in the fields of string and list processing as they frequently occur in the
non-scientific disciplines.
The program calls a few assembly language routines for the screen and the
keyboard.
I/O is done via I/O buffers of 12 KByte size.
Internally, the characters are stored in a TABLE (effectively an associative
hash array) by ASCII values. They are stored as strings of bytes as sent to
the printer.
The byte string of the character edited is converted to an array of strings,
forming binary representation of the character's rows. This array is scanned
columnwise on being read back to the table. As yet, this scanning is what
limits the program's speed.
Each time marking, duplication and pasting is invoked, a new paste buffer is
set up as a new array.
On a few occasions, especially on overflowing of the program's memory area,
the FONTED may abort with an error message. If this occurs, report the
conditions as precisely as possible to the author (including the error
number), so that we can reproduce the error and fix possible bugs. In fact,
FONTED should correctly edit and save any font that the NEC P 6 printer's
built-in memory can hold.
31) Example fonts and program files:
────────────────────────────────
FONTED .DOC This documentation file
FONTED .EXE FONTED program module
FONTED .CNF Configuration file for FONTED
FONTED. GER German documentation file
FONTED .HLP FONTED help file
FONTHELP.GER German help file
cyrill .bin Cyrillic letter quality proportional
dhgreek .bin draft high speed Greek
draft .bin example small draft font (incomplete)
drgreek .bin draft Greek
elgreek .bin Elite letter qulity Greek
gothic .bin letter quality proportional Gothic
greek .bin letter quality proportional Greek
large .bin large scale sanserif font, lq, prop.
sanserif.bin letter quality, proportional sanserif
uncial .bin letter quality proportional uncial
(Burkhard Meißner).